package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.system.domain.UserWorks;
import org.apache.ibatis.annotations.Param;

/**
 * 作品Mapper接口
 *
 * @author ruoyi
 * @date 2025-04-29
 */
public interface UserWorksMapper {
    /**
     * 查询作品
     *
     * @param worksId 作品主键
     * @return 作品
     */
    public UserWorks selectUserWorksByWorksId(Long worksId);

    public UserWorks selectUserWorksByHistoryOrder(String orderId);

    /**
     * 查询作品列表
     *
     * @param userWorks 作品
     * @return 作品集合
     */
    public List<UserWorks> selectUserWorksList(@Param("userWorks") UserWorks userWorks, @Param("userId") Long userId);

    /**
     * 新增作品
     *
     * @param userWorks 作品
     * @return 结果
     */
    public int insertUserWorks(UserWorks userWorks);

    /**
     * 修改作品
     *
     * @param userWorks 作品
     * @return 结果
     */
    public int updateUserWorks(UserWorks userWorks);

    /**
     * 删除作品
     *
     * @param worksId 作品主键
     * @return 结果
     */
    public int deleteUserWorksByWorksId(Long worksId);

    /**
     * 批量删除作品
     *
     * @param worksIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteUserWorksByWorksIds(Long[] worksIds);

    /**
     * 获取生图次数
     *
     * @param userId 用户的ID
     * @return 结果
     */
    public Integer getUserGenImgCount(Long userId);

    /**
     * 生图次数减一
     *
     * @param userId 用户的ID
     * @return 结果
     */
    public int subUserGenImgCount(Long userId);

    /**
     * 新增用户时生图次数
     *
     * @param userId 用户的ID
     * @return 结果
     */
    public int addUserGenImgInfo(Long userId);


    /**
     * 每天更新生图次数
     *
     * @return 结果
     */
    public int addUserGenImgCount();


    int insertUserGenWork(@Param("userWorkId") Long userWorkId, @Param("userId") Long userId);


    void updatePaintworkByWorksId(@Param("paintwork")String paintwork, @Param("worksId")Long worksId);
}
